Determining gift suggestions for users of a social networking system using an auction model

ABSTRACT

A social networking system provides suggestions of gifts to users for presentation to a target user for a life event of the target user. Merchants provide bids for their products. The social networking system selects products as gift suggestions based on the merchants&#39; bids, recipient&#39;s interests, and the candidate user to whom the gift is suggested. The selected gift and any messages relating to the life event are held until a specified time and then delivered to the target user. At the time of delivery, the target user may be provided with alternative products that the target user can select instead of the gift. The social networking system can earn revenue based on promotion of products as gift suggestions, promotion of products as gift alternatives, and for any financial transaction related to the gift.

BACKGROUND

This invention relates generally to social networking, and in particularto suggesting gift giving between users of social networking systems.

People often present gifts to their loved ones and acquaintances,including, friends, family, or colleagues on various occasions forexample, birthdays, anniversaries, holidays and the like. Often, peopleorganize events to be celebrate special occasions in which gifts for aperson may be presented to that person, for example, birthday parties,baby showers, weddings, and so on. People may also make contribution topresent an expensive gift that may exceed the budget of any one of thecontributors. As a result, celebrating special occasions and presentinggifts can be a complex social event requiring extensive preparation andcoordination between various parties.

Vendors of products and services that provide articles relevant tospecial occasions, for example, articles that can be presented as giftswould like to be able to promote their products and services to thevarious parties involved in the these special occasions. Being able topresent their products to the right party at the right time couldsubstantially increase the chances that the vendor is able to sell theirproducts and services. Conventional promotional methods used by vendorsinclude billboards, television broadcasts, and newspaper or magazineadvertisements. However, these mass media promotional methods advertiseproducts to a wide variety of individuals, who may or may not beinterested in the products. As a result, a typical viewer of theadvertisement may ignore the advertisement. Significant amount ofadvertising efforts of vendors gets directed towards people that do nothave an immediate interest in the products services. Merchants canimprove the effectiveness of their advertising by targeting it towardsthose individuals who are likely to be interested in, and therefore arelikely to purchase, their products.

Social networking systems store social information about users,including their social profiles and social interactions. The power ofsocial networking has not been exploited towards helping connect vendorsoffering various products and services to parties involved in variousspecial occasions of people. The ability to exploit social informationwould allow vendors to target their advertisements and productinformation in a more focused manner towards parties that are morelikely to purchase their products and services. Since networking systemscan charge vendors for providing the appropriate social information thathelps vendors sell their products, social networks can derive revenuesfrom the vendors. Furthermore, since networking systems can providespecial services benefiting users of the networking systems involved inthese special occasions, users are more likely to use the networkingsystems, and visit the networking systems on a regular basis. Thisincreases user loyalty towards particular networking systems that mayprovide these features.

SUMMARY

A social networking system provides gift suggestions to users of thesocial networking system. The suggested gifts are presented to a userwho is connected to a target user in the social networking system, wherethe suggested gift is for a life event of the target user. For example,the social networking system may suggest to friends of a user who isabout to have a birthday that the friends buy a gift for that user. Thegift suggestions may be determined based on organic and sponsorshipfactors. For example, the social networking system may determine thegift suggestions in part based on the user's likely interest in the giftand the user's friends' likelihood of buying the gift for the user ifthe suggestion is made. However, the gift suggestions may also bedetermined based on a monetary value to the social networking system ifthe gift suggestion is made or acted upon.

In one embodiment, this monetary value is based on bids for certain giftsuggestions, which the social networking system receives from merchantsor from advertisers on behalf of merchants. Each bid may includeinformation identifying a product, information identifying a merchant,and a bid value. The bid value represents the revenue provided by themerchant to the social networking system for promoting the product(e.g., paid on an impression, if a user is shown the suggestion, or paidon conversion, if the user actually acts on the suggestion).

For a particular target user, the social networking system identifies alife event of the target user, such as a birthday, wedding, orgraduation. The social networking system also identifies one or morecandidate users connected to the target user as potential gift givers.The social networking system recommends products as gift suggestions toeach candidate user as potential gifts for the life event of the targetuser. The social networking system selects products for recommending asgifts based at least in part on potential revenue earned by the socialnetworking system as determined from the bids provided by the merchantsfor the products.

In an embodiment, the social networking system identifies productssuitable for presenting as gift for the life event of the target user.For example, a particular type of gift may be suitable for a birthdaywhereas a different type of gift may be suitable for a wedding. Thesocial networking system may maintain a mapping from different types oflife events to products presented as gifts for each life event. Thismapping may be built using historical information describing giftspresented for each life event in the past and/or may be provided by themerchants.

The features and advantages described in this summary and the followingdetailed description are not all-inclusive. Many additional features andadvantages will be apparent to one of ordinary skill in the art in viewof the drawings, specification, and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of the system environment illustrating a socialnetworking system allowing connections of a user to present gifts to theuser, in accordance with an embodiment of the invention.

FIG. 2 is a high-level block diagram of the system architecture of asocial networking system for facilitating connections of a user topresent gifts to the user, in accordance with an embodiment of theinvention.

FIG. 3 provides details of the gift selection module, in accordance withan embodiment of the invention.

FIG. 4 is a flowchart of the gift selection process, in accordance withan embodiment of the invention.

FIG. 5 provides details of the gift delivery module, in accordance withan embodiment of the invention.

FIG. 6 is a flowchart describing the gift delivery process, inaccordance with an embodiment of the invention.

FIG. 7 shows a screenshot of a user interface for allowing friends of auser to initiate a group gift card for a life event of the user, inaccordance with an embodiment of the invention.

FIG. 8 shows a screenshot of a user interface for allowing friends ofthe target user to contribute to a group gift, in accordance with anembodiment of the invention.

FIG. 9 shows a screenshot of a user interface for informing friends ofthe target user that one of the friends has started a group gift card,in accordance with an embodiment of the invention.

FIG. 10 shows a screenshot of a user interface presenting the targetuser with messages and/or gifts provided by friends of the target userat a time associated with a life event of the target user, in accordancewith an embodiment of the invention.

FIG. 11 provides details of the gift arbitrage module, in accordancewith an embodiment of the invention.

FIG. 12 is a flowchart describing the gift arbitrage process, inaccordance with an embodiment of the invention.

The figures depict various embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION

Social networking systems store information describing users of thesocial networking system and their interactions with each other. Usersjoin the social networking system and then add connections to a numberof other users to whom they desire to be connected. The socialnetworking system may be aware of important events in the lives of itsusers, such as birthdays, weddings, or anniversaries. When the socialnetworking system presents information regarding a user's life event tothat user's connections in the social networking system by explicitpostings, news feed, or other means, the user's connections oftenrespond in a generic manner, for example, by sending messages ofcongratulations or well-wishing. However, some users may desire torespond to another user's life event in a manner more befitting thenature of the event and the affinity of the other user. In particular, auser might prefer to give a gift to another user rather than merely senda message. The type of gift presented may depend on the type of event,interests of the user receiving the gift, and the closeness of the userpresenting the gift and the recipient. In particular, when a user of asocial networking system has an upcoming life event that might warrantgift giving from other individuals, such as a birthday, wedding, babyshower, graduation, or the like, the social networking system may sendgift suggestions to the connections of that user particular productsthat may be given as gifts. If the social networking system presents auser with products or services as potential gifts that would beappropriate for the life event and likely to be interesting to thereceiver of the gift, the user is more likely to purchase the productsor services presented to the user.

Various products and services to be presented as gifts may be providedby merchants wishing to advertise their products in a manner beneficialboth to the users of the social networking system and to the promotionalgoals of the merchants. A reference to the term “product” is not limitedto physical goods but includes various types of products and services,charity donations, gift cards, memberships of organizations, tickets toevents, media including music, videos, movies, and the like. Socialnetworking systems can utilize social information to suggest potentialgifts to connections of a target user for presenting to the target user.The suggestions for gifts can be determined based on various factorsincluding information describing the target user, information describingthe connections presented with the gift suggestions, and the amount ofrevenue that the social networking system generates.

The social networking system can also use social information of thetarget user and the special occasion to determine how the gift isdelivered to the target user. For example, the social networking systemmay determine that the gift or message is delivered at a particular timebased on the type of occasion. The time selected for delivery of themessages and gifts is typically closer to the special event or occasion.For example, if the special occasion is the birthday of the target user,birthday greetings sent by the connections of the user may not bedelivered when the connection sends the message. Instead, the socialnetworking system may hold all messages to be delivered and deliver themat midnight on the birthday.

In spite of the social information utilized by the social networkingsystem in selecting gifts for the target user, there is a likelihoodthat the target user would have preferred another gift instead of thegift actually selected by a connection of the target user. The socialnetworking system may present the target user with alternatives to thegift along with the gift selected by the connections of the user. Thesealternatives are products and or services that were not selected by theconnection. However, the social networking system determines that thetarget user may be interested in preferring these gifts instead of thegift actually selected by a connection. If the target user prefers analternative, the social networking system may generate higher revenuebased on the transaction instead of a transaction based on the giftoriginally selected by the connection. The revenue generated by thesocial networking system depends on a difference of price that theconnection of the target user selected and the gift that was finallyselected by the target user. This process of presenting alternativegifts to users and generating revenue based on the price differencebetween the gift selected by the connection and the gift selected by thetarget users is referred to as gift arbitrage herein.

These embodiments allow the social networking system provides vendorswith opportunities to present product information to users at variousoccasions when the user is very likely to complete a transactionassociated with the product and services. Furthermore, the socialnetworking system maximizes the revenue generated by the socialnetworking system as a result of the transactions. Furthermore, thesocial networking system provides valuable service to the users of thesocial networking system, thereby increasing user loyalty.

System Environment

FIG. 1 is a diagram of the system environment illustrating a socialnetworking system allowing connections of a user to present gifts to theuser. FIG. 1, illustrates interactions between the social networkingsystem 100, users 105, 145 of the social networking system, andmerchants 125. FIG. 1 and the other figures use like reference numeralsto identify like elements. A letter after a reference numeral, such as“120 a,” indicates that the text refers specifically to the elementhaving that particular reference numeral. A reference numeral in thetext without a following letter, such as “120,” refers to any or all ofthe elements in the figures bearing that reference numeral (e.g. “120”in the text refers to reference numerals “120 a” and/or “120 b” in thefigures). In an embodiment, the social networking system 100 isimplemented using a computer system. The users including the target user105 and friends 145 communicate with the social networking system usingcomputer systems, for example, client devices. The merchant system 125may also be implemented using a computer system.

A social networking system 100 offers its users the ability tocommunicate and interact with other users of the system. In use, usersjoin the social networking system and then add connections to a numberof other users to whom they desire to be connected. As used herein, theterm “friend” refers to any other user to whom a user has formed aconnection, association, or relationship via the system. Connections maybe added explicitly by a user, for example, the user selecting aparticular other user to be a friend, or automatically created by thesocial networking site based on common characteristics of the users(e.g., users who are alumni of the same educational institution).Connections in social networking system are usually in both directions,but need not be, so the terms “user” and “friend” depend on the frame ofreference. For example, if Bob and Joe are both users and connected toeach other in the social networking system, Bob and Joe, both users, arealso each other's friends. The connection between users may be a directconnection; however, some embodiments of a social networking systemallow the connection to be indirect via one or more levels ofconnections. Also, the term friend need not require that users actuallybe friends in real life, (which would generally be the case when one ofthe users is a business or other entity); it simply implies a connectionin the social networking system.

The social networking system provides users 105, 145 with the ability totake actions on various types of items supported by the socialnetworking system. These items may include groups or networks (where“networks” here refer not to physical communication networks, but ratherto social networks of people) to which users of the social networkingsystem may belong, events or calendar entries in which a user might beinterested, computer-based applications that a user may use via thesocial networking system, and transactions that allow users to buy,sell, auction, rent, or exchange items via the social networking system.These are just a few examples of the items upon which a user may act ona social networking system, and many others are possible.

Users 105, 145 of the social networking system perform other actions 110including, posting information, visiting pages, interacting with theinformation posted by other users, and executing transactions related toproducts offered by merchants 125. Social networking system 100 can usethe actions 110 of a target user 105, to determine informationdescribing life events 120. A life event can be a significant event inthe target user's life based on a special occasion. A user mayexplicitly define these dates, for example, the user's birthday,wedding, or graduation. The social networking system 100 can also inferinformation regarding life events not explicitly specified by a user,for example, a pet adoption. The social networking system can infer lifeevents from actions 110 performed by the target user using the socialnetworking system 100, for example, communications with connectionsreferring to the event. The social networking system can also determinelife events based on information obtained from external systemsinteracting with the social networking system, for example, an externalgift registry that interacts with the social networking system usingsocial network plug-ins.

Merchant systems 125 are computer systems that allow vendororganizations to interact with computer systems of other organizations,for example, a computer system of a social networking system 100.Merchant systems 125 provide social networking system 100 with bids 130associated with products that can be potentially presented to users asgifts. In the description herein, a merchant system can also be referredto as a merchant or a vendor. Bids may be represented in the socialnetworking system as objects or data structures storing informationdescribing the bids. Information describing a bid 130 includesinformation identifying a product that could be given as a gift and theprice of the item, for example, the price that a user needs to pay topurchase the item. In addition, bids 130 may describe a portion ofrevenue share to be given to social networking system 100 in the case atransaction based on the product is executed by a user with themerchant. A bid may also include revenue provided to the socialnetworking system if the social networking system presents the productinformation to a user, for example, as a gift suggestion or during thegift arbitrage.

The social networking system 100 uses the bids 130 and actions 110 ofthe target user 105 to provide gift suggestions 135 to friends 145 ofthe target user 105. The interests of target user 105 and friends 145may be inferred from actions 110 of the target user 105 and the targetuser's friends 145. The social networking system 100 determines a set ofgift suggestions 135 based on information describing the target user105, the life event 120, the friends 145, and the bids 130. Socialnetworking system 100 informs friends 145 that target user 105 has anupcoming life event 120 and gives friends 145 the opportunity to respondto the event. The social networking system 100 presents gift suggestionsto the friends 145 of the user. A friend 145 or friends 145 may selectone or more gifts 150 to present to the target user 105 from the set ofsuggested gifts 135. In an embodiment a group of friends maycollectively present a gift to the user by making contributions to thegift. In this situation, a single gift (referred to herein as a “groupgift”) may be purchased by a pool into which multiple individualscontribute.

In the case of a group gift, selected gift 150 may be determined bysocial networking system 100 based on the feedback of friends 145, forexample, via a voting process. Selected gift 150 is then delivered 155to target user 105 at the time of the life event or at a time related tothe life event, for example, before the life event. In one embodiment,gift delivery 155 comprises gift arbitrage 265. During arbitrage, giftalternatives 160 are presented to target user 105 along with theselected gift 150. Target user 105 may select one of gift alternatives160 to replace the selected gift 150 if the target user 105 would preferone of the alternatives over the selected gift.

System Architecture

FIG. 2 is a high-level block diagram of the system architecture of asocial networking system for facilitating connections of a user topresent gifts to the user, in accordance with an embodiment of theinvention. The system architecture may be configured ascomputer-executable program modules. As used herein, the term “module”refers to computer program logic and/or data for providing the specificfunctionality. A module can be implemented in hardware, firmware, and/orsoftware. The social networking system 100 includes an action logger215, action log 220, merchant bid store 225, gift suggestion module 230,gift delivery module 235, gift arbitrage module 240, user profile store245, connection store 250, merchant transaction module 255, andcommunication module 260. In other embodiments, the social networkingsystem 100 may include additional, fewer, or different modules forvarious applications. Conventional components such as networkinterfaces, security mechanisms, load balancers, failover servers,management and network operations consoles, and the like are not shownso as to not obscure the details of the system.

Client device 200 interacts with social networking system 100 throughnetwork 210. Network 210 represents a communication pathway between userdevice 200, merchant system 205, and social networking system 100. Thenetwork 210 is typically the Internet, but may be any network, includingbut not limited to a LAN, a MAN, a WAN, a mobile wired or wirelessnetwork, a private network, or a virtual private network. In oneembodiment, the network 210 uses standard communications technologiesand/or protocols. For example, the networking protocols used on thenetwork 210 can include the transmission control protocol/Internetprotocol (TCP/IP), the hypertext transport protocol (HTTP), the filetransfer protocol (FTP), etc. The data exchanged over the network 210can be represented using technologies and/or formats including thehypertext markup language (HTML), the extensible markup language (XML),etc. In some embodiments, the entities can use custom and/or dedicateddata communications technologies instead of, or in addition to, the onesdescribed above.

The client device 200 can be a desktop computer, laptop computer,portable computer, personal digital assistant (PDA), smart phone, or anyother device including computing functionality and data communicationcapabilities. A plurality of client devices 200 can be configured tocommunicate via the network 210. Furthermore, although only one clientdevice is shown in FIG. 2 for simplicity, it is to be understood that aplurality of client devices may interact with social networking system100.

Action logger 220 identifies interactions of users with socialnetworking system 100 and logs the information in action log 215. Userinteractions with social networking systems include interactions betweenusers, interactions between a user and a page within the socialnetworking system, interactions between a user and a post on a page, anduser visits to or interactions with a page outside the social networkingsystem that contains plug-ins for that social networking system. When auser manually enters information into the user's profile, for example,name, location, sex, age, and date of birth, the information is storedin the user profile store 245.

Communication module 260 provides various methods for users tocommunicate, including but not limited to wall posts, news feed, emails,or customized user interfaces such as side bars or fly-outs. Theconnection store 250, stores information relating to the socialconnections of each user such as a list of social connections, list ofconnections shared with each connection, and frequency and type ofinteractions between the user and each connection. The communicationsbetween the target user and the target user's connections may be storedin the connection store 250 or in a different data store.

For one given user, the information stored in action log 215, userprofile store 245, and connection store 250 may be used to accuratelypredict characteristics of that user. Methods that might be used topredict user characteristics are well known in the art. For example, theuser might frequently respond to pictures, articles, and commentsrelating to dogs. The frequency and nature of these responses wouldlikely indicate that the user is interested in dogs and, therefore,might be interested in dog-related merchandise or services. However, anynumber of methods may be used to predict, infer, or deduce usercharacteristics and interests, and the present invention is not limitedby the particular method employed.

Merchant system 205 also interacts with social networking system 100through a network 210, which may be in the same form as or in adifferent form than the network through which user device 200 interactswith social networking system 100. Within social networking system 100,merchant transaction module 255 connects the social networking system100 to a merchant application programming interface (API) 265 tocomplete gift transactions. In one embodiment, the merchant API 265 maybe implemented as a web service. The merchant APIs 265 allow the socialnetworking system 100 to send requests for information to the merchantsystem 205 and receive information associated with bids 130.

The gift suggestion module 230, gift delivery module 235, and giftarbitrage module 240 perform processing related to gifts. The giftsuggestion module 230 collects merchant bids for products that may besold through the social networking system and facilitates the purchaseof these products as gifts that may be given from one user to another.As friends respond to the life event of target user 105, the giftdelivery module 235 collects the gift chosen by users, informs otherusers of the gift, encourages participation, and delivers the gift at aspecified time to the target user. In addition to delivering the giftchosen by users, gift delivery module 235 may invoke gift arbitragemodule 240 to provide the target user with alternative gift options.These alternative gifts may be chosen in place of the original gift,with the tradeoff that the alternatives may have lower value than theoriginal gift. Gift suggestion module 230, gift delivery module 235, andgift arbitrage module 240 are described in further detail herein.

Gift Suggestion

The social networking system 100 receives from merchants, bids forproduct(s) that can be potential gifts presented by users of the socialnetworking system 100 to other users. The merchant transaction module255 stores information about the bid in merchant bid store 370 includingthe merchant information, product information, and bid value. In anembodiment, the merchant bid store 370 represents the bid information asa record or tuple <merchant_id, product_id, bid_value>, where themerchanid_id represents an identifier of a merchant, the product_idrepresents an identifier of the product, and the bid_value is arepresentation of the bid value. In this representation, the merchantand product information may be stored in a separate store or a databasetable, where the merchant_id and product_id values are foreign keysreferring to these stores or database tables respectively. The bid_valuecould be in the form of an absolute monetary value or a percentage ofthe product value. The bid_value represents the revenue provided to thesocial networking system 100 by the merchant for services provided bythe social networking system to the merchant towards selling of productsof the merchants to users.

The revenue provided by the merchant to the social networking system 100by the merchants may depend on the value of the product for which thebid is placed, for example, as a percentage of the price of the product.The value of the revenue provided to the social networking system may bea fixed price, for example, a fixed amount paid by the merchant to thesocial networking system 100 for every impression of the productpresented to a user. The value of the revenue provided to the socialnetworking system 100 may represent an amount paid to the socialnetworking system responsive to a product being sold as a gift to thetarget user responsive to the social networking system suggesting theproduct as potential gift to the friends of the target user. The valueof the revenue provided to the social networking system 100 may dependon the context in which the product information is presented by thesocial networking system 100 to the user, for example, the value of therevenue for presenting the product to the target user during giftarbitrage may be higher than the value of the revenue for presenting asa gift suggestion to a connection of the user. This is so, because thelikelihood of the product being sold during gift arbitrage aredetermined by the social networking system to be higher than thelikelihood of the product being sold based upon a gift suggestion.

In an embodiment, the social networking system 100 receives multiplebids from the merchant for the same product, each bid corresponding tothe revenue provided to the social networking system for a particulartype of action performed by the social networking system towards thepromotion of the product. Separate bid values may be provided fordifferent actions taken by the social networking system including,recommending the product as a gift suggestion to a connection of theuser, presenting the product as an alternative for the gift finallyselected for the user, a financial transaction executed as a result ofthe product being given as a gift to the user, and recommending theproduct as a gift suggestion to a subsequent user after the product hasalready been recommended to at least one connection of the user. The bidvalue provided by the merchant for recommending the product as a giftsuggestion to a connection of the user is typically less than the bidvalue provided for presenting the product as an alternative for the giftfinally selected for the user. The bid value provided by the merchantfor recommending the product as a gift suggestion for the first time forthis life event of the target user to a connection is higher than thebid value for recommending the product as gift suggestions to subsequentusers after the product has already been suggested to at least oneconnection. In an embodiment, the social networking system verifiesthese relations between different types of bid values for the sameproduct provided by a merchant and may provide a warning or a message tothe merchant responsive to the bid values not conforming to an expectedrelationship.

FIG. 3 outlines the components of one embodiment of gift suggestionmodule 230. After merchant transaction module 255 collects a pluralityof merchant bids 130, gift suggestion module 230 selects products fromthe set of merchant bids that may be given as gifts and selects socialconnections of the target user to encourage to purchase the giftsuggestions. More precisely, gift suggestion module 230 as shown in FIG.3 contains a number of sub-modules that select social connections totarget as potential gift givers, choose gift options from the set ofmerchant bids 130, present the suggested gifts to the selected socialconnections, receive feedback from the social connections to whom thesuggestions are presented, and select a gift for the target user.

Gift contributor selection 310 selects users of the social networkingsystem that are likely to give the target user gifts in response to hisor her life event. The selected users are referred to herein as“friends,” but it is to be understood that these connections can includeindividuals with any relationship to the target user and are not limitedby the terminology used to designate connections. The entire set ofsocial connections of the target user may be selected as potential giftgivers also referred to as gift contributors. In an embodiment, theselected group of gift contributors may be a subset of the target user'ssocial connections. Selection of gift contributors may be based on useraffinity, recent interactions between a connection and the target user,a rate at which the connections have given gift to the target user inthe past, or other criteria. The gift contributor selection 310 mayselect individual gift contributors, such that each individual giftgives a separate gift to the target user and the number of gifts givento the target user is equal to the number of gift contributors. If theprice of a potential gift exceeds a threshold value, the giftcontributor selection 310 may select multiple friends to present theproduct as a group gift. In this situation, each contributor of thegroup gift contributes less than the price of the gift, for example, ifthere are three contributors, each contributor may contribute a third ofthe price of the gift. In this case, the number of gifts given to thetarget user is less than the number of friends who purchase gifts.Alternatively, the selected gift contributors can be a combination ofindividual gift contributors and group gift contributors.

Each product provided by the set of merchant bids 130 is assigned aninterest score by gift scoring module 320, the score representing thelikelihood of a friend selecting a particular product to give as a giftto the target user. Each interest score is assigned based on suchfactors as the interests of the target user, qualities of the friendssuch as their personal interests, interests shared with the target user,and expected monetary contribution; or the appropriateness of the giftfor the life event. For example, if the life event is a baby shower,gifts relating to babies may receive a higher interest score thanrestaurant gift certificates or baseball tickets. As another example, iffriend A frequently visits restaurants with the target user, arestaurant gift certificate may receive a high interest score for friendA. The social networking system 100 may use information provided byusers when they check-in to a location to identify the various placesvisited by the user, for example, restaurants, stores, malls, and thelike. In this case, the product is scored based on a particulargift/friend combination; the same product, i.e., the gift certificatefor the same restaurant, may receive a lower interest score for adifferent friend who has not been identified as frequenting thatparticular restaurant with the target user.

In one embodiment, a product receives a high interest score if theproduct is on a wish list of the target user. The wish list may identifyproducts in which the target user is interested, based on the targetuser or connections of the target user adding products to the wish list.A method for generating a wish list for a target user is described inU.S. patent application Ser. No. 13/748,222, filed Jan. 23, 2013, whichis incorporated by reference in its entirety.

In an embodiment, the social networking system selects a gift forrecommending to a candidate user based on the economic status of thecandidate user. The economic status may be determined based oninformation available in the user profile of the candidate user, forexample, earnings or type of job specified by the user. A candidate userhaving higher earning capacity may be provided with gift suggestions ofmore expensive products compared to a candidate user having lowerearning capacity. Similarly, the social networking system considers theeconomic status of the target user receiving the gift to selectpotential gifts for the target user. If the economic status of thetarget user indicates that the target user belongs to a high economicstatus, the social networking system selects more expensive gifts forthe target user compared to another user with lower economic status.

In an embodiment, the selection of gifts is based on the type of lifeevent. For example, gifts given for a birthday event are different fromgifts given on a wedding. Similarly, gifts given for a graduation may bedifferent for gifts given for a birthday or a wedding. In an embodiment,the gift suggestion module 230 maintains an association between types oflife events and the types of gifts typically presented for that type oflife event. These associations may be predetermined by experts andstored in the social networking system 100. In an embodiment, the socialnetworking system may build a database of these associations based onobservations of gifts presented by users of the social networking systemto other users. For example, is a friend uses the social networkingsystem presents a gift to a friend via the social networking system userinterface close to a life event of the friend, that product is added asa type of product that is likely to be provided as gift for that type oflife event. Over time, if the same type of product is given as gift onvarious occasions, the social networking system 100 associates that typeof product as potential gift for that type of life event. The productsassociated with a type of life event may be identified by the brandname, the type of item, for example, a toy, dress, book, etc. or by aunique identifier for the product type. In an embodiment, the socialnetworking system determines a common set of characteristics of a set ofproducts previously presented as gift to users so as to be able toassociate a new product provided by a vendor with a particular lifeevent. In subsequent instances of that type of life events, the socialnetworking system may identify products of the type associated with thelife event and suggest them as potential gifts to friends of the targetuser. This mechanism allows the social networking system to grow thedatabase of associations of gifts with types of life events.

The bids 130 are also assigned a revenue score by auction model 340,which predicts the expected revenue of the social networking systemcontributed by each bid based on the value of the bid and the interestscore determined by gift scoring module 320. Gifts that are most likelyto be purchased by a friend or friends and that have the greatestrevenue share for the social networking system would be given thehighest revenue score by auction model 340.

In an embodiment, the gift suggestion module determines a combinedweighted score for each bid based on various criteria, for example, theinterest score and the revenue score. After the bids have been assignedthe relevant scores, gift suggestion presentation module 330 presentsthe bids to the selected friends based on the scores. For example, aproduct associated with a bid having higher score has greater likelihoodof being presented to friends of the target user. All friends may seethe same selection of gift options, or the options may be tailored tothe specific friend (such as in the restaurant gift certificate exampleabove, in which a particular gift/friend combination received a highinterest score). Presentation of gift options may employ methodscommonly used within social networking system 100 to present informationits users, such as wall posts or newsfeed, or may use a custom interfacesuch as a sidebar gift user interface. Gift suggestion presentationmodule 330 also determines the time to present gift options to thefriends that may be on the day of the life event or a set time periodprior to the life event that would allow friends sufficient time torespond to the event and decide to purchase or contribute towards agift.

After the options have been presented by gift suggestion presentationmodule 330, user feedback module 350 solicits feedback from the friendsregarding the available gift options. Feedback can be in the form ofuser comments, user “liking,” or other methods that similarly quantifythe response of friends to the product type, price, appropriateness forthe life event, or other factors. In one embodiment, friend feedback maybe passed to gift selection module 360, described further below, todetermine the gift to be given to the target user. In anotherembodiment, the feedback provided by friends can be used to adjust theinterest score that was assigned to the gift by the gift scoring module320. The gift scoring module may in turn adjust the revenue score basedon the adjustment of the interest score.

The gift selection module 360 selects one or more gifts at a specifiedpoint relating to the life event. Selection may occur in a number ofways. If friends provide individual gifts, each friend selects a gift togive to the target user for the target user's life event and pays forthe entire cost of the gift. The gift selection module may also modifythe gift options available to other friends based on the purchase of onegift. For example, if item A was presented to both friend B and friend Cas a gift option, and friend B purchases item A, item A may be removedfrom the set of gift options presented to friend C.

Alternatively, if a plurality of friends gives a group gift, giftselection module 360 selects the gift to be given to the target userbased on the feedback received by user feedback module 350. In oneembodiment, when the group gift is a gift card or other redeemablecertificate that can be purchased in continuous monetary values, themoney contributed by friends can be directly applied to the value of thegift. Gift selection module 360 may then compute the value of the giftbased on the total amount of money contributed by friends. For example,friends A, B, and C contribute money to purchase a gift card for targetuser D's birthday. Friend A donates $20.00, friend B donates $7.00, andfriend C donates $13.43. Gift selection module 360 then computes thattarget user D may receive a gift card with a value of $40.43.

In another possible case of a group gift, the group gift may have afixed price. Examples of such gifts include products or gift cards thatmay only be purchased in discrete increments. For example, friends A, B,and C contribute money to purchase a gift with a fixed cost of $45.00.If friend A contributes $20.00, friend B contributes $7.00, friend Ccontributes $13.43, and no other social connections of the target usercontribute to the gift, the funds will be insufficient to purchase the$45.00 gift. In such a case gift selection module 360 may encourage oneor more of the friends to increase his or her contribution to cover thedifference in cost. Alternatively, gift selection module 360 may selectan alternative gift that can be purchased with the available funds. Thealternative may be one of the previously-suggested gift options that wasranked slightly lower by users in user feedback module 350 than theoriginally-selected gift. In another embodiment, gift selection module360 selects the gift with the highest user feedback rank that can bepurchased with the money contributed by the plurality of friends. In analternative case, friends contribute more money than is needed for theoriginally-selected gift. For example, friend A contributes $20.00,friend B contributes $7.00, and friend C contributes $10.00 to be usedto purchase a $45.00 gift. If the quantity contributed is sufficient topurchase a more expensive gift from the available options, giftselection module 360 may select the more expensive gift to be given tothe target user. If the contributed money is not used to purchase a moreexpensive gift, the difference between the quantity donated and the costof the gift may be transferred to the social networking system.

FIG. 4 is a flowchart outlining the process of one embodiment of thegift suggestion module 222 as detailed in the description of itssub-modules. The social networking system 100 identifies 400 a lifeevent 120 of a target user 105. The social networking system 100receives 410 bids 130 from merchants 125 identifying products that maybe gifted to target user 105 for his or her life event 120. The socialnetworking system 100 scores 420 the products as potential gifts basedon various criteria including information describing the target user,information describing a connection of the target user who is apotential gift giver, and a bid associated with the product, forexample, the bid specifying revenue provided to the social networkingsystem for promoting the products as potential gifts. The score of theproducts may be based on other criteria including the interests oftarget user 105 and friends 145, socioeconomic status of friends 145, ornature of life event 120. The gift selection module 360 uses the scoreof the potential gifts to select the products that are recommended tothe potential gift givers. The gift suggestion module 230 suggests 430the selected gifts to the potential gift givers. The potential giftgivers provide their final selection of the gifts that they would liketo present to the target user. The gift delivery module 235 sends 450information describing the final selection of gifts for the target userto the target user at a time close to the life event, for example, atmidnight on the day of a birthday of the target user.

Gift Delivery

FIG. 5 details the components of one embodiment of gift delivery module235. In response to a life event 120, friends 145 send messages totarget user 105, or social networking system 100 sends messages totarget user 105 based on the actions of friends 145 within the system.These messages include communications, for example, comments or emailsfrom friends with greetings, well-wishes, or other types of statementsfor the life event and notification of gifts purchased by friends 145,whether these gifts are purchased by individual friends or by groups offriends 145.

As messages are sent, some users of social networking system 100 may bepermitted to view information regarding the messages. For example, auser may be able to see on the morning of a given day that it is targetuser A's birthday and that three friends so far have donated money topurchase a gift for target user A, whereas target user A may not benotified of that information. Such selection of users who can seeinformation regarding messages is performed by user selection module510. Generally, user selection module 510 determines which users ofsocial networking system 100 should be able to see information relatedto a gift or gifts for a particular target user's life event. Visibleinformation is that which a user of social networking system 100 canaccess under normal operation of the social networking system, that is,information saved to and/or displayed upon the user's profile,information posted to the user's newsfeed, messages sent to the user, orpublically-available information. It does not include, for example,information that could be accessed by logging into another user'sprofile.

According to one embodiment, the social networking system informs someor all social connections of target user 105 that other connections arecontributing money to purchase a gift for target user 105 or sendingpublic comments to target user 105. In an embodiment, the messagescommunicated to the target user and the information describing the giftsfor the life events is communicated to the users based on the privacysettings of the target user and the privacy settings of the other userthat is communicating the message or sending the gift. However, thesocial networking system ensures that the same information is notcommunicated to target user 105 until a predetermined time based on thelife event. In another embodiment, said gift information is displayedonly to the plurality of individuals selected by social networkingsystem 100 to give a group gift.

Messages may be sent by friends 145 to target user 105 at any pointbefore the life event, or within a designated window before the lifeevent such as the time specified by gift suggestion presentation module330, but are initially held in message store 500 instead of beingdelivered directly to target user 105. These messages are not providedto the target user 105, even if the target user attempts to access themessage store with proper authentication until a predetermined timebased on the life event. In an embodiment, the message store 500 is achannel dedicated to a particular target user and particular life eventof said target user. Delivery timing module 520 determines anappropriate time to deliver the messages held in message store 500 totarget user 105, such as the time of the life event or a predeterminedtime on the date of the life event, such as 9:00 pm. Delivery timing maybe based on the type of life event. For example, the delivery timing fora birthday may be determined to be at midnight when the birthday startor soon after midnight. For certain life events the delivery time may beduring the day of the life event, for example, in the morning. Thedelivery time may be determined based on the target user. For example,the messages may be delivered on the day of the life event after thetarget user logs in to the social networking system. If the target userdoesn't log into the social networking system on the day of the lifeevent until very late during the day, the messages may be delivered at apredetermined time before the target user logs in. The delivery time fora life event corresponding to a graduation may be based on the timeassociated with a graduation ceremony. In an embodiment, the socialnetworking system 100 communicates with the friends of the target userthat are sending messages and gifts to the target user to determine atime of delivery. For example, the time of delivery may be presented toone or more of these friends of the target user and if more than athreshold number of friends dislike the proposed delivery time, thefriends may be provided a user interface to suggest a new delivery timeor the social networking system may proposed a new delivery time. Forexample, the delivery time for a baby shower may be determined based oninformation received from the friends of the target user participatingin the baby shower.

When the time specified by delivery timing module 520 is reached, giftpresentation module 540 delivers messages stored in message store 500 totarget user 145 by communication mechanisms used by the socialnetworking system, for example, wall posts, email notifications, privatemessages, and the like. In an embodiment, these messages are displayedto the user in a separate portion of the user interface, for example, aportion specially dedicated to information related to the life event. Inone embodiment of the design, the presentation module determines theorder in which messages will be delivered to target user 105 based onsome factor such as the affinity between the sender of each message andthe target user, or the time the gift was purchased or otherwiseprepared. In another embodiment, the gift presentation module 540categorizes messages for delivery, enabling for example messages fromfamily members to be delivered together, or messages from classmates orcoworkers to be delivered together.

The method of message delivery depends on the type of message. Messagessuch as wall posts, private communication between users, or othertext-exclusive content may be delivered by displaying the text directlyor providing a link to a page containing the text. Messages comprisinggift information may be delivered, in one embodiment, by the giftpresentation module 540 transferring target user 105 to the API of therelevant merchant through a specialized channel. In another possibleembodiment, the gift presentation module 540 comprises a custom giftredemption platform, such that target user 105 may redeem his or hergift without interacting with the merchant API.

The gift redemption process is specific to the nature of the selectedgift. Generally, target user 105 is given credit for the gift, whereincredit might be a printable certificate or coupon, a downloadable file,a secret code that may be entered at an external website, a certificateor coupon that may be downloaded to a mobile device, confirmation thatthe item will be shipped or mailed to the target user, access to adebitable account, credit transferred to a personal online fundrepository such as a bank account, PayPal® account, or the like, or anyother method that may be relevant for delivering the selected gift. Forexample, if the gift is a gift card that may be redeemed by an onlinemerchant, the user may be provided with a code that could be entered atcheck out when the target user purchases an item. Alternatively, if thegift is a physical product that must be mailed or shipped to the targetuser, target user 105 may be asked to enter a shipping address thatmerchant transaction module 255 sends to the merchant in addition to thepurchase request and payment or payment agreement. In yet anotherembodiment, the target user may be given an opportunity to select aparticular gift out of a set of similar options. For example, if thegift is a candle that comes in six different scents, the target user maybe able to select the scent of the candle.

FIG. 6 is a flowchart outlining the procedure employed by one embodimentof gift delivery module 235, for delivering messages and informationdescribing a gift presented to the user for the life event. The socialnetworking system 100 sends 600 information describing the life event ofthe target user to friends of the target user 105. In an embodiment, thesocial networking system 100 may prompt 610 the friend 145 to send amessage to the target user for the life event, for example, a greeting,and/or purchase a gift or contribute money towards a gift for the targetuser, in combination with contributions by other friends towards a gift.Delivery timing module 520 determines 620 a delivery time for the lifeevent of the target user 105 for delivering all messages related to thelife events send by friends 145 and information describing any giftspresented for the life event.

As friends 145 respond to the life event 120 of target user 105, messagestore 500 collects all messages, including notification to the targetuser of gifts or money contributed towards group gifts as well as noteswritten by friends 145 to target user 105. User selection module 510sends 630 the information of some or all of the contents of messagestore 500 to the users selected by the module.

At the delivery time specified by delivery timing module 520, giftselection module 360 determines the gift or gifts to be given to targetuser 105 based on the response of friends 145, including their feedbackto gift suggestions 135 and the money they contribute to a gift. Thegift presentation module 540 may sort the gifts into categories based onthe relationship between friends 145 and target user 105. The giftpresentation module 540 sends 560 the messages and informationdescribing the gift(s) to target user 105 at the delivery time. The giftpresentation module 540 may then facilitate gift redemption.

In one embodiment of the gift delivery module 235, the gift(s) chosen byfriends 145 or by gift selection module 360 based on the input offriends 145 is/are delivered to target user 105 as described above. Inanother possible embodiment, target user 105 may be given theopportunity to select an alternative gift instead of the gifts actuallyselected by the friends of the target user. Arbitrage module 240presents the gift alternatives and the gift selected by friends totarget user 145 and facilitates arbitrage. Details of arbitrage module240 are provided herein.

FIG. 7 shows a screenshot of a user interface for allowing friends of auser to initiate a group gift card for a life event of the user, inaccordance with an embodiment of the invention. The user interfaceprovides required instructions 710 for the user to initiate the groupgift card. As shown in FIG. 7, a user of the social networking system ispresented with one or more friends that have a life event within a nearfuture. FIG. 7 shows a list of friends 720 of the user that haveupcoming birthdays. However, other embodiments can show different lifeevents of users, for example, graduation, wedding anniversary, and thelike. The user may be provided a mechanism to personalize the group giftcard by adding a message 730. The user may be allowed to includeadditional content to personalize the group gift card, for example, byincluding an image 740 along with the message.

FIG. 8 shows a screenshot of a user interface for allowing friends ofthe target user to contribute to a group gift, in accordance with anembodiment of the invention. The user can contribute monetarily towardsa gift, for example, by making a payment 820 using a credit card. Theuser interface shown in FIG. 8 prompts the user with an amount 810 tocontribute towards the gift or to enter a new amount 830. Once the userhas provided the requested information the user can initiate the groupgift card by clicking on a button 830. Similar user interface can bepresented to other friends of the user to contribute towards one or moregifts.

Once a friend of the target user initiates a group gift card for thetarget user, other friends of the target user may be provided with anopportunity to contribute to the group gift card either by adding newmessages or making a monetary contribution. FIG. 9 shows a screenshot ofa user interface for informing friends of the target user that one ofthe friends has started a group gift card, in accordance with anembodiment of the invention. Information 910 describing the group giftcard may be provided as part of communication channels of the socialnetworking system, for example, newsfeed. In other embodiments theinformation may be presented to the friends using a user interfacespecialized for presenting group gift information, for example, a panelor side bar of a webpage. The friends of the user may be presented withinformation describing the activities related to the group gift cardperformed by other users so far, for example, information describing theusers that added messages to the group gift card, information describingthe users that made financial contributions to the group gift card,information describing any gift that has been finalized in the groupgift card, and so on.

The information included in the group gift card is provided to thetarget user at a time associated with the life event of the target user,for example, in the morning of a birthday. FIG. 10 shows a screenshot ofa user interface presenting the target user with messages and/or giftsprovided by friends of the target user at a time associated with a lifeevent of the target user, in accordance with an embodiment of theinvention. The information included may describe the financialcontributions 1020 made by the friends of the target user towards thegroup gift card. The information provided to the user may includemessages 1010, and content, for example, images uploaded by the friendsof the target user for the group gift card. In some embodiments, thesocial networking system 100 presents the target user with alternativegifts that the target user can accept instead of a gift selected by thefriends of the user. These embodiments are described herein, as follows.

Gift Arbitrage

FIG. 11 details the components of one embodiment of gift arbitragemodule 240. When the gift or gifts selected by friends 145 are presentedto target user 105, social networking system 100 may provide target user105 with the opportunity to choose a different gift than that selectedby friends 145. Gift alternatives 160, which are different from thegift(s) chosen by friends 145, are selected from the set of merchantbids 130 by alternative gift selection module 1100. These alternativegifts may be chosen based on the scores assigned to each bid by giftscoring module 320 and/or auction model 340, or new scores may beassigned to merchant bids 130 by sub-components of alternative giftselection module 1100.

In one embodiment of gift arbitrage module 240, alternative gifts areselected that have lower value than the value of the original gift. Thisallows the social networking system to receive at least a portion of theprice difference between the alternative gift and the gifts selected byfriends of the target user as revenue. In some embodiments, merchants125 agree to pay the social networking system 100 revenue, for example,a fixed amount or percentage of product value for presenting the productas an alternative gift during gift arbitrage. Because there is a highlikelihood of target user 105 selecting one of the alternativespresented, merchants are likely to receive a high rate of return on anyitems displayed during arbitrage. Therefore, in an embodiment, thesocial networking system 100 requires a merchant to provide higher bidvalues for presenting the products as alternative gifts to the targetuser as compared to a corresponding bid for the same product forpresenting to friends of the target user as gift suggestions. The bidvalue for presenting the products as alternative gifts to a target useris also higher than a corresponding bid for presentation of the productas a conventional advertisement to users of the social networkingsystem. In addition to or in place of an advertising fee, the merchantmay agree to pay the social networking system a share of revenue basedon the cost difference between the original gift and alternative gifts,either as a fixed amount or percentage of the cost difference.

For example, friends of target user E may give him gift F, with a valueof $100. During arbitrage, social networking system 100 provides targetuser E with the choice to accept gift F or choose alternative gifts G,H, or I instead. In one embodiment of gift arbitrage module 240, giftsG, H, and I would necessarily have a lower value than gift F, such as$90, $80, and $70, respectively. The social networking system 100 mayselect gifts G, H, and I so as to maximize the revenue earned by thesocial networking system 100. That is, for the said gift values, socialnetworking system 100 might predict that gift I would be most desirableto target user E, gift H would be slightly less desirable, and gift Gwould be less desirable than H. The complete set of possible gifts mayinclude another gift J with value $95 that target user E is predicted todesire more than any of gifts G, H, or I as represented by the scoreassigned to gift J by gift scoring module 320, but the revenuedifference may outweigh the difference in target user E's expecteddesires. If target user E selects one of gifts G, H, or I in place ofgift F, such as gift H, the difference in cost ($20 in this case) may berevenue for social networking system 100.

As an example of an alternative embodiment, gift J, gift K, and gift Lmay be shown as alternatives to gift F, still with value $100 for thisexample, but the values of gifts J, K, and L are not constrained by thevalue of gift F and therefore might be, respectively, $120, $75, and$200. For example, gifts K, L, and M are all items sold by merchant N,although the products selected and displayed by gift arbitrage module240 are not constrained to one merchant. Merchant N may agree to pay thesocial networking system an advertising fee for displaying gifts K, L,and M during arbitrage, such as $10 per item. In addition to or in placeof this advertising fee, merchant N may agree to give the socialnetworking system as revenue share a specified percentage of the valueof the chosen item, a specified percentage of the price differencebetween the chosen item and the original gift (that is, gift F), or afixed amount per transaction. For example, if target user E decides topurchase gift M instead of gift F, merchant N may agree to pay thesocial networking system ten percent of the cost difference, such thatthe social networking system would earn $10 from the transaction.

Gift alternatives 160 and the original gift 150 are displayed to targetuser 105 by gift suggestion presentation module 330, or an alternativemodule with features designed specifically for gift arbitrage. Forexample, the gift suggestion presentation module may not display thevalue of each item to target user 105, or in the case of an alternativegift that is more expensive than the original gift, gift suggestionpresentation module 330 may only display the difference in price thattarget user 105 would need to pay in order to purchase the moreexpensive item.

FIG. 12 is a flowchart outlining the procedure employed by oneembodiment of gift arbitrage module 240, as detailed in the descriptionof the sub-modules. The social networking system 100 receives 1200selection of gifts from friends of a target user for presenting to thetarget user for a life event. The social networking system selects 1210alternative gifts for suggesting to the user based on various factorsincluding price difference between the gift selection received fromfriends of the target user and potential alternative gifts. Otherfactors considered by the social networking system for selecting 1210alternative gifts include matching of the potential alternative giftswith interests of the target user as determined by social informationdescribing the target user stored in the social networking system, andbids provided by the merchants for presenting the products asalternative gifts. The gift suggestion presentation module 330 sends1220 information describing the gift selections from friends of thetarget user along with information describing alternative gifts to thetarget user.

If the target user selects an alternative gift, the social networkingsystem 100 receives 1230 the selection of the alternative gift from thetarget user. If social networking system may assist the merchant systemthat provides the alternative gift to complete a transaction forproviding the alternative gift to the target user. The social networkingsystem 100 receives revenue based at least on the price differencebetween the gift selection provided by the friends, and the alternativegift selected by the target user. The social networking system 100 mayin addition receive revenue from merchants for each alternative giftthat was presented to the target user.

Alternative Embodiments

While various embodiments and modules for implementing those embodimentshave been described above, these descriptions are intended to beillustrative but not limiting of the scope of the present invention.Those of skill in the art will appreciate that the invention may bepracticed in other embodiments. The particular naming of the components,capitalization of terms, the attributes, data structures, or any otherprogramming or structural aspect is not mandatory nor significant, andthe mechanisms that implement the invention or its features may havedifferent names, formats, or protocols. Also, the particular division offunctionality between the various system components described herein ismerely exemplary, and not mandatory; functions performed by a singlesystem component may instead be performed by multiple components, andfunctions performed by multiple components may be instead performed by asingle component.

The present invention also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, and/or it may comprise a general-purpose computingdevice selectively activated or reconfigured by a computer programstored in the computer. Such a computer program may be stored in atangible computer readable storage medium, such as, but not limited to,any type of disk including floppy disks, optical disks, CD-ROMs,magnetic-optical disks, read-only memories (ROM), random-access memories(RAM), EPROMs, EEPROMs, magnetic or optical cards, application specificintegrated circuits (ASICs), or any type of media suitable for storingelectronic instructions, and each coupled to a computer system bus.Furthermore, any computing systems referred to in the specification mayinclude a single processor or may be architectures employing multipleprocessor designs for increased computing capability.

The present invention is well suited to a wide variety of computernetwork systems over numerous topologies. Within this field, theconfiguration and management of large networks comprise storage devicesand computers that are communicatively coupled to dissimilar computersand storage devices over a network, such as the Internet. In addition,the present invention is not limited to any particular programminglanguage. It is appreciated that a variety of programming languages maybe used to implement the teachings of the present invention as describedherein.

Finally, it should be understood that the language used in thisspecification has been selected for readability and instructionalpurposes, and may not have been selected to delineate or circumscribethe inventive subject matter. The scope of the invention is set forth inthe following claims.

What is claimed is:
 1. A computer implemented method comprising:receiving, by a social networking system, a plurality of bids, each bidcomprising information identifying a gift suggestion and a bid valuerepresenting revenue to be provided to the social networking system inconnection with the gift suggestion; identifying a life event of atarget user of the social networking system; selecting one or morecandidate users connected to the target user via the social networkingsystem; and for each of one or more of the candidate users: selecting agift suggestion from the plurality of gift suggestions based at least inpart on the bid value associated with the gift suggestion, and sendingthe selected gift suggestion for display to the candidate user.
 2. Thecomputer implemented method of claim 1, wherein selecting a giftsuggestion comprises: identifying a gift suggestion based on a type ofthe life event.
 3. The computer implemented method of claim 2, whereinidentifying a gift suggestion for presenting to the target user as giftfor the life event is based on a predetermined mapping from life eventsto gift suggestions suitable for presenting as gifts for each lifeevent.
 4. The computer implemented method of claim 3, wherein thepredetermined mapping from life events to gift suggestions suitable forpresenting as gifts for each life event is based on historical datadescribing gifts given to users in past for life events.
 5. The computerimplemented method of claim 1, wherein selecting a gift suggestioncomprises: identifying a gift suggestion based on information describingprevious interactions between the target user and the candidate userassociated with a gift suggestion.
 6. The computer implemented method ofclaim 1, wherein selecting a gift suggestion comprises: identifying giftsuggestions based on information describing a location associated with amerchant, the merchant associated with the bids identifying the giftsuggestions, wherein the social networking system has receivedinformation indicating the candidate user and the target user havevisited the location.
 7. The computer implemented method of claim 1,wherein a bid value of a bid corresponds to revenue provided to thesocial networking system by a merchant providing the bid responsive tothe social networking system selecting the gift suggestion associatedwith the bid.
 8. The computer implemented method of claim 1, wherein abid value of a bid corresponds to revenue provided to the socialnetworking system by a merchant providing the bid responsive to thesocial networking system sending the gift suggestion associated with thebid for display to the target user as an alternative to the selectedgift suggestion.
 9. The computer implemented method of claim 1, whereina bid value of a bid corresponds to revenue provided to the socialnetworking system by a merchant providing the bid responsive to apurchase of a product associated with the bid.
 10. The computerimplemented method of claim 1, wherein the plurality of bids comprises afirst bid for a gift suggestion from a merchant corresponding to revenueprovided to the social networking system by the merchant responsive tothe social networking system selecting the gift suggestion and a higherbid for sending the gift suggestion for display to the target user as analternative to the selected gift suggestion.
 11. The computerimplemented method of claim 1, wherein the plurality of bids comprises afirst bid for a gift suggestion from a merchant corresponding to revenueprovided to the social networking system by the merchant responsive tothe social networking system selecting the gift suggestion to thecandidate user and a lower bid for subsequently sending the giftsuggestion for display to another user after the product was sent fordisplay to the candidate user.
 12. The computer implemented method ofclaim 1, wherein selecting the one or more candidate users comprisesdetermining a likelihood of each of the one or more candidate userspresenting a gift to the target user for the life event, the likelihooddetermined based on an affinity between the candidate user and thetarget user.
 13. The computer implemented method of claim 1, whereinselecting the one or more candidate users comprises determining alikelihood of each candidate user presenting a gift to the target userfor the life event, the likelihood determined based on a history ofprevious gifts presented by the candidate user to the target user. 14.The computer implemented method of claim 1, wherein selecting a giftsuggestion is further based on the gift suggestion having been presentedas a gift by the candidate user in the past.
 15. The computerimplemented method of claim 1, wherein selecting the gift suggestioncomprises selecting an expensive gift suggestion for displaying to thecandidate user compared to a less expensive gift suggestion selected fordisplaying to another candidate user responsive to the user profile ofthe candidate user indicating a higher earning capacity compared to theother candidate user.
 16. The computer implemented method of claim 1,wherein selecting the gift suggestion comprises: responsive to a priceof a gift suggestion exceeding a threshold value, proposing the giftsuggestion as a group gift to a plurality of candidate users.
 17. Anon-transitory computer-readable storage medium storing executablecomputer program instructions, the computer program instructionscomprising instructions for: receiving, by a social networking system, aplurality of bids, each bid comprising information identifying a giftsuggestion and a bid value representing revenue to be provided to thesocial networking system in connection with the gift suggestion;identifying a life event of a target user of the social networkingsystem; selecting one or more candidate users connected to the targetuser via the social networking system; and for each of one or more ofthe candidate users: selecting a gift suggestion from the plurality ofgift suggestions based at least in part on the bid value associated withthe gift suggestion, and sending the selected gift suggestion fordisplay to the candidate user.
 18. The non-transitory computer-readablestorage medium of claim 17, wherein the predetermined mapping from lifeevents to gift suggestions suitable for presenting as gifts for eachlife event is based on historical data describing gifts given to usersin past for life events.
 19. The non-transitory computer-readablestorage medium of claim 17, wherein the plurality of bids comprises afirst bid for a gift suggestion from a merchant corresponding to revenueprovided to the social networking system by the merchant responsive tothe social networking system selecting the gift suggestion and a higherbid for sending the gift suggestion for display to the target user as analternative to the selected gift suggestion.
 20. The non-transitorycomputer-readable storage medium of claim 17, wherein selecting the giftsuggestion comprises: responsive to a price of a gift suggestionexceeding a threshold value, proposing the gift suggestion as a groupgift to a plurality of candidate users.